<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>reduce</title>
</head>
<body>
    
</body>
</html>

<script>
    // let cart = [
    //     {name:'phone',price:12000},
    //     {name:'imac',price:25000},
    //     {name:'ipad',price:3600}
    // ];
    //取得价格最高的产品
    // function maxPrice(array){
    //     return array.reduce(
    //         (max,elem) => (max > elem.price ? max : elem.price),array[0].price
    //     );
    // }

    //计算商品中产品的总价
    // function totalPrice(array){
    //     return array.reduce(
    //         (total,elem) => (total += elem.price),0
    //     );
    // }
    // console.log('购物车中价格最高是:')
    // console.log(maxPrice(cart));
    // console.log('将购物车中的数据买完需要花掉的money是')
    // console.log(totalPrice(cart))

    //获取价格超过1万的商品名称 [第一种方法]
    // function getNameByPrice(array,price){
    //     return array.reduce(function(result_price,elem){
    //         if(elem.price > 10000){
    //             result_price.push(elem);
    //         }
    //         return result_price;
    //     },[]).map(function(items){
    //         return items.name;
    //     });
    // }

    //获取价格超过1万元的商品名称 【第二种方法】
    //普通数组   一维数组才能直接进行值返回 不用花括号
    // function getNameByPrice(array,price){
    //     return array.reduce(
    //         (result_price,elem) => {    
    //             if(elem.price > price){
    //                 result_price.push(elem);
    //             }
    //             return result_price;
    //         },[]
    //     ).map(elems => elems.name);
    // }

    // console.log(getNameByPrice(cart,10000));



    //使用reduce实现数组去重
    let arr = [1,2,3,4,1,2,3,5,6,4,5];
    // let filterArr = arr.reduce((pre,cur,index,array) => {
    //     if(!pre.includes(cur)){
    //         pre = [...pre,cur];
    //     }
    //     return pre;
    // },[]);
    // console.log(filterArr);


    //数组去重
    // function filterArr(array){
    //     return array.reduce((pre,cur) => {
    //         if(pre.includes(cur) === false){
    //             pre.push(cur);
    //         }
    //         return pre;
    //     },[]);
    // }

    // function filterArr(array){
    //     return array.reduce((pre,cur) => {
    //         if(pre.find(function(item){
    //             return item == cur;
    //         }) == undefined){
    //             pre.push(cur);
    //         }
    //         return pre;
    //     },[]);
    // }
    // console.log(filterArr(arr));


    // let arrs = [1,2,3];
    // let find = arrs.find(function(item){
    //     return item == 2;
    // });
    // console.log(find);
    

</script>